package com.tom.architect.day21.simple2;

import com.tom.architect.day21.simple2.status.IOrderOperateStatus;
import com.tom.architect.day21.simple2.status.ObligationStatus;
import com.tom.architect.day21.simple2.status.PaidStatus;
import com.tom.architect.day21.simple2.status.WaitReceivingStatus;

/**
 * Added by Tom on 2023/12/27.
 */
public class Order extends BaseOrder implements IOrderOperateStatus {
    public Order() {
        // 默认待付款状态。
        mStatus = new ObligationStatus();
    }

    @Override
    public void pay() {
        mStatus.pay(); // 支付：调用父类的方法。
        mStatus = new PaidStatus(); // 更新状态
    }

    @Override
    public void deliverGoods() {
        mStatus.deliverGoods(); // 发货：调用父类的方法。
        mStatus = new WaitReceivingStatus(); // 更新状态，待发货
    }
}
